﻿using System;
using System.Runtime.InteropServices;

namespace Multiboot
{
    [ABI.OutputCHeader]
    public class Header
    {
        public MemoryMap[] mmap;

        public ulong heap_start;
        public ulong heap_end;

        public ulong virt_master_paging_struct;

        public ulong virt_bda;
    }

    [ABI.OutputCHeader]
    public class MemoryMap
    {
        public ulong base_addr;
        public ulong length;
        public MemoryMapType type;
    }

    [ABI.OutputCHeader]
    public enum MemoryMapType
    {
        Available = 1,
        TLoad = 1002,
        Tysos = 1003,
        PagingStructure = 1004,
        Module = 1005,
        VideoHardware = 1006,
        BiosDataArea = 1007
    }
}
